// use actix_web::middleware::{ErrorHandlerResponse, ErrorHandlers};
// use actix_web::{
//     http::{ StatusCode},
//     HttpResponse,
// };
// use actix_web::body::BoxBody;
// use crate::common::{ApiResponse, AppErr};
// 
// use actix_web::dev::{ServiceResponse};
// 
// 
// pub fn global_error_handler() -> ErrorHandlers<BoxBody> {
//     ErrorHandlers::new()
//         // 处理 404
//         .handler(StatusCode::NOT_FOUND, |res: ServiceResponse| {
//             let json = ApiResponse::<()>::error(AppErr::NotFound.code(), AppErr::NotFound.message());
//             Ok(ErrorHandlerResponse::Response(res.into_response(HttpResponse::Ok().json(json).map_into_right_body())))
//         })
//         // 处理 500
//         .handler(StatusCode::INTERNAL_SERVER_ERROR, |res: ServiceResponse| {
//             let json = ApiResponse::<()>::error(AppErr::InternalServer.code(), AppErr::InternalServer.message());
//             Ok(ErrorHandlerResponse::Response(res.into_response(HttpResponse::Ok().json(json).map_into_right_body())))
//         })
//         // 处理 400
//         .handler(StatusCode::BAD_REQUEST, |res: ServiceResponse| {
//             let error_message = res.response().error().map(|e| e.to_string()).unwrap_or_else(|| "Bad Request".to_string());
//             let err = AppErr::BadRequest(error_message);
//             let json = ApiResponse::<()>::error(err.code(), err.message());
//             Ok(ErrorHandlerResponse::Response(res.into_response(HttpResponse::Ok().json(json).map_into_right_body())))
//         })
//         // 处理 405
//         .handler(StatusCode::METHOD_NOT_ALLOWED, |res: ServiceResponse| {
//             let error_message = res.response().error().map(|e| e.to_string()).unwrap_or_else(|| "Method Not Allowed".to_string());
//             let err = AppErr::MethodNotAllowed(error_message);
//             let json = ApiResponse::<()>::error(err.code(), err.message());
//             Ok(ErrorHandlerResponse::Response(res.into_response(HttpResponse::Ok().json(json).map_into_right_body())))
//         })
// }
// 
